在Kotlin中任何表達式都可以加上標籤
在識別的標籤後加上**@** 如abc@ fooBar@
loop@ for (i in 1..100) {
// ...
}
可以使用標籤執行break和continue
loop@ for (i in 1..100) {
for (j in 1..100) {
if (...) break@loop
}
}
如果if成立則break跳到loop@繼續執行
fun foo() {
ints.forEach {
if (it == 0) return
print(it)
}
}
foo()會在 if(it == 0) 這行return
加上標籤後
fun foo() {
ints.forEach lit@ {
if (it == 0) return@lit
print(it)
}
}
程式執行至 if(it == 0) 時只會return到 ints.forEach lit@ 這行 接著繼續執行
也可以用一個匿名函數替代lambda表達式
fun foo() {
ints.forEach(fun(value: Int) {
if (value == 0) return
print(value)
})
}